package com.automannn.atm_back.modules.codeGenerator.mapper;

import com.automannn.atm_back.modules.codeGenerator.entity.ColumnEntity;
import com.automannn.atm_back.modules.codeGenerator.entity.TableEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author chenkh
 * @time 2020/6/28 17:02
 */
public interface SchemaEntityMapper extends BaseMapper<ColumnEntity> {

    /**
     * 获取mysql库表的结构
     * @param table
     * @param database
     * @return
     */
    List<ColumnEntity> getMysqlColumns(String table, String database);

    /**
     * 获取postgresql表格结构
     * @param table namespace+表名
     * @return
     */
    List<ColumnEntity> getPGColumns(@Param("table") String table);

    /**
     * 获取oracle表格结构
     * @param table
     * @return
     */
    List<ColumnEntity> getOracleColumns(@Param("table") String table);

    /**
     * 获取sqlServer表格结构
     * @param table
     * @return
     */
    List<ColumnEntity> getSqlServerColumns(@Param("table") String table);

    /**
     * 查询mysql库下的所有表信息
     * @param database
     * @return
     */
    List<TableEntity> getMysqlTables(IPage page, @Param("database") String database);

    /**
     * 查询postgresql某个模式下的所有表信息
     * @return
     */
    List<TableEntity> getPGTables(IPage page);

    /**
     * 获取oracle某个模式下的所有表  待调试
     * @return
     */
    List<TableEntity> getOracleTables(IPage page);

    /**
     * 获取sqlserver的表信息  待调试
     * @return
     */
    List<TableEntity> getSqlServerTables(IPage page);


}
